一种三维实体模型轻量化优化方法,该方法基于CATIA、三维引擎Virtools以及3DMAX三种软件,利用CATIA对相关CAD模型进行特定格式的存储,然后将相关实体模型导入到Virtools中,利用Virtools对实体模型进行优化运算,再利用Virtools对模型进行存储,最后将实体模型导入3DMAX中以完成模型的材质处理、贴图、烘焙等工作。该方法包括以下几个步骤:步骤一:用CATIA软件对三维实体模型文件进行特定格式的保存;步骤二:利用Virtools平台打开三维实体模型文件;步骤三:利用Virtools平台对三维实体模型文件进行轻量化处理;步骤四:三维实体模型的导出;步骤五:用3DMAX软件导入轻量化后的三维实体模型。
1.一种三维实体模型轻量化优化方法,其特征在于:该方法具体步骤如下:步骤一:用CATIA软件对三维实体模型文件进行特定格式的保存:步骤1.1用CATIA软件打开所要处理的三维实体模型:运行CATIA软件,在打开的软件界面中选择“File”菜单,打开所需处理的三维实体模型文件;步骤1.2用CATIA软件对三维实体模型文件进行特定格式的存储:选择“File”菜单,在其中选择“Savexa0as”菜单项,在打开的对话框中设置工程名称和存储路径,选择存储格式为“3dxml”,从而完成三维实体模型文件的存储;步骤二:利用Virtools平台打开三维实体模型文件:运行Virtools平台,在启动的平台界面中选择“Resource”菜单,在下拉菜单中选择“im
portxa0file”选项,打开步骤一中存储的三维实体模型文件;步骤三:利用Virtools平台对三维实体模型文件进行轻量化处理:步骤3.1编写三维实体模型处理代码:步骤3.1.1建立代码的头文件:建立代码的头文件,完成对三维实体模型相应的.cpp文件包含操作功能模块Buildingxa0Blocks的属性信息、编辑参数信息的声明;步骤3.1.2新文件的存储:建立新的目标模型文件,用于存储和编辑已有的三维实体模型,如果创建不成功将会返回并且报错;步骤3.1.3模型贴图存储:将三维实体模型的贴图以图片的方式进行保存,为模型贴图创建文件夹并对相应的贴图进行保存;步骤3.1.4模型材质信息的存储:将三维实体模型的材质信息写入到mlt文件中;步骤3.1.5将顶点世界坐标写入obj文件:利用辅助物体获取物体的世界坐标,并把世界坐标写入到obj文件中;步骤3.1.6将顶点的UV信息写入obj文件:UV信息被用来确定贴图的位置坐标信息,写入obj文件后,贴图的参考位置将被确定;步骤3.1.7将顶点的法线坐标写入obj文件:顶点的法线坐标被用来确定贴图的方向,写入obj文件后,确定贴图的朝向;步骤3.1.8将构成图的顶点索引写入obj文件:曲面为离散的多个顶点,将顶点的位置坐标、所对应的贴图信息写入obj文件;步骤3.1.9按照材质顺序将面分别写入obj文件:将已经定义了贴图位置、方向的材质赋予所对应的面上,由此完成了obj文件的所有内容的写入;步骤3.2编写三维实体模型的处理操作功能模块Buildingxa0Blocks:步骤3.2实现.cpp文件到Virtools功能实现模块间的转换,即.cpp代码到操作功能模块Buildingxa0Blocks间的转换;具体步骤如下:步骤3.2.1保存前述.cpp文件;步骤3.2.2运行Virtools扩展开发工具包;步骤3.2.3选择建立操作功能模块Buildingxa0Blocks运行向导;步骤3.2.4完善有关信息,完成向导;步骤3.2.5将前述.cpp文件写入向导生成的文件中,完成操作功能模块Buildingxa0Blocks的创建;步骤四:三维实体模型的导出:运行Virtools,在操作功能模块Buildingxa0Blocks标签中导入新建的操作功能模块Buildingxa0Blocks至schematic栏中,填写路径、所保存组、文件名、是否导出贴图、是否导出材质、贴图类型;完成后,单击界面右下方的运行按钮,即完成模型的转换;步骤五:用3DMAX软件导入轻量化后的三维实体模型:运行3DMAX软件,在主菜单中选择“导入”,在弹出的选择列表中选择要进行导入的obj文件,即已完成轻量化并由Virtools导出的文件,双击进行导入,即完成三维实体模型轻量化优化方法。【技术领域】本发明一种三维实体模型轻量化优化方法,具体涉及模型的导出、模型格式转换、优化运算以及模型再导入等过程,属于航空航天仿真领域。【背景技术】目前,在航空航天仿真领域,一个重要的工作是把三维实体模型从相关计算机辅助设计CAD软件(如产品开发解决方案CATIA软件)导入到仿真图形处理软件(如三维动画软件3DMAX等)中进行处理。但是由于三维实体模型包含了很多参数信息,它的文件体积通常很大,这就为后期的图形处理设备提出了很高的要求,同时也使图形处理的效率降低,困难加大。不符合现阶段科技发展的需求,有待改进。【发明内容】本发明提供了一种三维实体模型轻量化优化方法,该方法能在保证模型仿真效果的前提下有效降低文件体积,提高开发效率,降低开发成本。本发明基于CATIA、三维引擎Virtools以及3DMAX三种软件,是在三者组成的平台上实现对三维实体模型的轻量化优化。本发明的目的在于提供一种三维实体模型轻量化优化方法,应用该方法,在航空航天仿真的三维实体模型构建阶段,文件体积被有效减小,设备要求明显降低。相关开发人员可以利用较低的成本以较高的效率完成航空航天仿真开发工作。从而解决在网络环境下,航空航天产品协同开发过程中,尤其是航空航天设计到航空航天制造、仿真的过程中,复杂产品模型数据交换、远程传输困难等瓶颈问题。本发明是一种三维实体模型轻量化优化方法,其主要内容是:利用CATIA对相关CAD模型进行特定格式的存储,然后将相关实体模型导入到Virtools中,利用Virtools对实体模型进行优化运算,再利用Virtools对模型进行存储,最后将实体模型导入3DMAX中,用以完成模型的材质处理、贴图、烘焙等工作。本发明是一种三维实体模型轻量化优化方法,该方法具体步骤如下:步骤一:用CATIA软件对三维实体模型文件进行特定格式的保存:步骤1.1用CATIA软件打开所要处理的三维实体模型打开步骤:运行CATIA软件,在打开的软件界面中选择“File”菜单,打开所需处理的三维实体模型文件。步骤1.2用CATIA软件对三维实体模型文件进行特定格式的存储存储步骤:选择“File”菜单,在其中选择“Savexa0as”菜单项,在打开的对话框中设置工程名称和存储路径,选择存储格式为“3dxml”,从而完成三维实体模型文件的存储。步骤二:利用Virtools平台打开三维实体模型文件Virtools是达索公司出品的软件,是一款三维实体模型整合处理平台,本发明将在Virtools平台上通过编写与运行相应代码实现模型的轻量化处理。具体实现:运行Virtools平台,在启动的平台界面中选择“Resource”菜单,在下拉菜单中选择“im
portxa0file”选项,打开步骤一中存储的三维实体模型文件。步骤三:利用Virtools平台对三维实体模型文件进行轻量化处理步骤3.1编写三维实体模型处理代码:具体实现:Virtools平台主要是借助Buildingxa0Blocks对三维实体模型进行操作。Buildingxa0Blocks即“操作功能模块”,简称“BB”,对其的使用是Virtools平台操作的核心。Virtools平台中提供多种BB,实现包括“对象管理”、“场景管理”、“脚本管理”、“状态”、“粒子”、“控制器”、“渲染”、“数据效果”、“脚本”、“服务器”等三维模型开发所需的各方面功能。此外,Buildingxa0Blocks还支持外部的编辑,用户可以根据需要,用C语言编写.cpp文件,实现其个人在开发过程中所需的个性化功能,以提高开发效率或实现特殊功能。鉴于此,步骤三首先需要编写C程序代码以实现三维实体模型的对外输出。编写三维实体模型处理代码的具体方法如下所述:步骤3.1.1建立代码的头文件:Virtools要求相应的.cpp文件包含Buildingxa0Blocks的属性信息、可编辑参数信息,头文件将完成这两部分信息的声明。步骤3.1.2新文件的存储:Virtools将会建立新的目标模型文件,用于存储和编辑已有的三维实体模型,如果创建不成功(这种不成功包括输入参数不正确或者存储路径无效等)将会返回并且报错。步骤3.1.3模型贴图存储:三维实体模型的贴图将以图片的方式进行保存,在这一步骤中,将会为模型贴图创建文件夹并对相应的贴图进行保存。步骤3.1.4模型材质信息的存储:三维实体模型的材质信息是obj文件的必要要求,在这一步骤中,将会把模型的材质信息写入到mlt文件中。步骤3.1.5将顶点世界坐标写入obj文件:在步骤三中的小步骤1.5中,利用辅助物体获取物体的世界坐标,并把世界坐标写入到obj文件中。步骤3.1.6将顶点的UV信息写入obj文件:UV信息被用来确定贴图的位置坐标信息,写入obj文件后,贴图的参考位置将被确定。步骤3.1.7将顶点的法线坐标写入obj文件:顶点的法线坐标将被用来确定贴图的方向,写入obj文件后,贴图的朝向将被确定。步骤3.1.8将构成图的顶点索引写入obj文件:在这里曲面被离散称为多个顶点,顶点的位置坐标,所对应的贴图等信息被写入obj文件。步骤3.1.9按照材质顺序将面分别写入obj文件:通过步骤3.1.1至3.1.9,已经定义了贴图位置、方向的材质将被赋予所对应的面上,由此完成了obj文件的所有内容。步骤3.2编写三维实体模型的处理Buildingxa0Blocks:步骤3.2主要实现.cpp文件到Virtools功能实现模块间的转换,即.cpp代码到Buildingxa0Blocks间的转换。具体步骤如下:步骤3.2.1保存前述.cpp文件;步骤3.2.2运行Virtools扩展开发工具包;步骤3.2.3选择建立Buildingxa0Blocks运行向导;步骤3.2.4完善有关信息,完成向导;步骤3.2.5将前述.cpp文件摘入向导生成的文件中,完成Buildingxa0Blocks的创建。步骤四:三维实体模型的导出:运行Virtools,在Buildingxa0Blocks标签中导入新建的Buildingxa0Blocks至schematic栏中,目标填写路径、所保存组、文件名、是否导出贴图、是否导出材质、贴图类型等。完成后,单击界面右下方的运行按钮,即可完成模型的转换。步骤五:用3DMAX软件导入轻量化后的三维实体模型运行3DMAX软件,在主菜单中选择“导入”,在弹出的选择列表中选择要进行导入的obj文件,即已完成轻量化并由Virtools导出的文件,双击进行导入,即完成三维实体模型轻量化优化方法。本发明优点及功效在于:提供的该三维实体模型轻量化优化方法,能在保证模型仿真效果的前提下有效降低文件体积,提高开发效率,降低开发成本。本发明基于CATIA、三维引擎Virtools以及3DMAX三种软件,是在三者组成的平台上实现对三维实体模型的轻量化优化。【附图说明】图1是步骤一至步骤四的流程图。图2是步骤三利用Virtools平台对三维实体模型文件进行轻量化处理的流程图。本发明中英文符号含义说明如下:CATIA:CATIA是法国达索公司(Dassault)的产品开发旗舰解决方案。作为PLM协同解决方案的一个重要组成部分,它可以帮助制造厂商设计他们未来的产品,并支持从项目前阶段、具体的设计、分析、模拟、组装到维护在内的全部工业设计流程。Virtools:Virtools是一套整合软件,可以将现有常用的档案格式整合在一起,如3D的模型、2D图形或是音效等。Virtools是一套具备丰富的互动行为模块的实时3D环境虚拟实境编辑软件,可以制作出许多不同用途的3D产品,如网际网络、计算机游戏、多媒体、建筑设计、交互式电视、教育训练、仿真与产品展示等。3DMAX:3DMAX是Autodesk公司开发的基于PC系统的三维动画渲染和制作软件。Buildingxa0Blocks:Virtools软件中的功能实现模块,相关人员通过使用不同的Buildingxa0Blocks以实现软件的功能。3dxml、cpp、obj:本方法中所涉及平台使用的相关文件后缀名。File、Savexa0as...:CATIA的菜单项。Resource、im
portxa0file...:Virtools的菜单项。Schematic:Virtools中的功能栏。【具体实施方式】下面结合图1和图2,对本发明中的各部分设计方法作进一步的说明:本发明是一种三维模型轻量化优化方法,该方法具体步骤如下:步骤一:用CATIA软件对三维实体模型文件进行特定格式的保存步骤1.1用CATIA打开所要处理的三维实体模型:打开步骤:运行CATIA,选择“File”菜单,打开所需处理的三维实体模型文件。步骤1.2用CATIA对三维实体模型文件进行特定格式的存储:存储步骤:选择File菜单,选择“Savexa0as”菜单项,在打开的对话框中设置工程名称和存储路径,选择存储格式为“3dxml”,完成文件的存储。步骤二:利用Virtools平台打开三维实体模型文件Virtools是达索公司出品的一款三维模型整合处理平台,本方法将在此平台上通过编写与运行相应代码实现模型的轻量化处理。具体实现:运行Virtools,选择Resource菜单,选择im
portxa0file选项,打开上一步骤中存储的模型文件步骤三:利用Virtools平台对三维实体模型文件进行轻量化处理步骤3.1编写三维实体模型处理代码:具体实现:Virtools软件主要是借助Buildingxa0Blocks对模型进行操作的。Buildingxa0Blocks即操作功能模块,不同的模块用以实现不同的功能。此外,Buildingxa0Blocks支持外部的编辑,用户可以根据需要编写.cpp文件实现特殊的功能。鉴于此,本方法首先需要编写c程序代码以实现模型的对外输出。具体方法如下所述,步骤3.1.1建立代码的头文件:Virtools要求相应的.cpp文件包含Buildingxa0Blocks的属性信息、可编辑参数信息,头文件将完成这两部分信息的声明。实现函数代码示例:
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/>
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="684"/>步骤3.1.2新文件的存储:程序将会建立新的目标模型文件,如果创建不成功(这种不成功包括输入参数不正确或者存储路径无效等)程序将会返回并且报错。实现函数代码示例:
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/>
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/>步骤3.1.3模型贴图存储:模型的贴图将以图片的方式进行保存,这里将会为模型贴图创建文件夹并对相应的贴图进行保存。实现函数代码示例:
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/>步骤3.1.4模型材质信息的存储:模型的材质信息是obj文件的必要要求,这里将会把模型的材质信息写入到mlt文件中。实现函数代码示例:
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/>
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/>步骤3.1.5将顶点世界坐标写入obj文件:本步骤包括利用辅助物体获取物体的世界坐标,并把世界坐标写入到obj文件中。实现函数代码示例:
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/>
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/>步骤3.1.6将顶点的UV信息写入obj文件:UV信息被用来确定贴图的位置坐标信息,写入obj文件后,贴图的参考位置将被确定。实现函数代码示例://将顶点的UV信息写入oxa0bj文件
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/>步骤3.1.7将顶点的法线坐标写入obj文件:顶点的法线坐标将被用来确定贴图的方向,写入obj文件后,贴图的朝向将被确定。实现函数代码示例:
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/>步骤3.1.8将构成图的顶点索引写入obj文件:在这里曲面被离散称为多个顶点,顶点的位置坐标,所对应的贴图等信息被写入obj文件。步骤3.1.9按照材质顺序将面分别写入obj文件:在这里前述已经定义了贴图位置、方向的材质将被赋予所对应的面上,由此完成了obj文件的所有内容。步骤3.2编写模型处理Buildingxa0Blocks具体实现:本步骤主要实现cpp文件到Virtools功能实现模块间的转换,即cpp代码到Buildingxa0Blocks间的转换。具体步骤如下:步骤3.2.1保存前述.cpp文件;步骤3.2.2运行Virtools扩展开发工具包;步骤3.2.3选择建立Buildingxa0Blocks运行向导;步骤3.2.4完善有关信息,完成向导;步骤3.2.5将前述.cpp文件摘入向导生成的文件中,完成Buildingxa0Blocks的创建。步骤四:三维实体模型的导出运行Virtools,在Buildingxa0Blocks标签中导入新建的Buildingxa0Blocks至schematic栏中,目标填写路径、所保存组、文件名、是否导出贴图、是否导出材质、贴图类型等。完成后,单击界面右下方的运行按钮,即可完成模型的转换。步骤五:用3DMAX软件导入轻量化后的三维实体模型运行3DMAX软件,在主菜单中选择“导入”,在弹出的选择列表中选择要进行导入的obj文件,即已完成轻量化并由Virtools导出的文件,双击进行导入,即完成三维实体模型轻量化优化方法。